import axios from 'axios'
import router from '../router'
import { Toast } from "mint-ui";
import {
  Indicator
} from 'mint-ui'
import qs from 'qs'
import VueRouter from 'vue-router';
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8'
const ajaxUrl = process.env.NODE_ENV === 'development'
  // 测试环境api接口
  ? '/api'
  // 线上环境api接口
  : 'https://api.huaxiahong.net'
const $http = axios.create({
  baseURL: ajaxUrl,
  timeout: 10000,
  headers: {'Content-Type': 'application/json;charset=UTF-8'}
})

$http.interceptors.request.use(config => {
  Indicator.open('加载中...')
  return config
})

$http.interceptors.response.use(resp => {
  Indicator.close()
  return resp
})

// $http.interceptors.request.use(
//   config => {
//     if (config.method === 'post') {
//       config.data = qs.stringify(config.data);
//     }
//     return config
//   },
//   error => {
//     console.log(error)
//     Promise.reject(error)
//   }
// )
$http.interceptors.request.use(

  config => {
   let token=JSON.parse(window.localStorage.getItem("token"))
    if (token) { // 每次发送请求之前判断是否存在token，如果存在，则统一在http请求的header都加上token，不用每次请求都手动添加了
      
      config.headers.token = token;
      // console.log(config.headers.token)
    }else{
      localStorage.clear();
      // if(router.currentRoute.name && router.currentRoute.name.toLowerCase() == "logindetail"){

      // }else{
      //   return null;
      // }
    }
    return config;

  },

  err => {

    return Promise.reject(err);

  });

// http response 服务器响应拦截器，这里拦截401错误，并重新跳入登页重新获取token
$http.interceptors.response.use(
  response => {
    // console.log(JSON.parse(JSON.stringify(response.data)).code)
    // alert(JSON.parse(JSON.stringify(response.data)))
     if(JSON.parse(JSON.stringify(response.data)).code==-1){
       alert(JSON.parse(JSON.stringify(response.data)).msg)
     }
    if(JSON.parse(JSON.stringify(response.data)).code == 9999) {
      localStorage.removeItem('token')
      Toast({
        message: "您还未登录请先登录"
      });
      router.replace({
          path: '/login',
          query: {redirect: router.currentRoute.fullPath}//登录成功后跳入浏览的当前页面
      })
    }else{
      return response;
    }
  if(JSON.parse(JSON.stringify(response.data)).code == 8888){
    localStorage.removeItem('shoptoken')
    Toast({
      message: "您还未登录请先登录"
    });
    router.replace({
        path: '/shoplogin',
        query: {redirect: router.currentRoute.fullPath}//登录成功后跳入浏览的当前页面
    })
  }else{
    return response;
  }
  },
  error => {
    Indicator.close()
      if (error.response) {
          switch (error.response.status) {
              case 401:
                  // 这里写清除token的代码
                  router.replace({
                      path: '/shoplogin',
                      query: {redirect: router.currentRoute.fullPath}//登录成功后跳入浏览的当前页面
                  })
          }
      }
      return Promise.reject(error.response.data)
  }
);

  // console.log(Promise.reject(error.response))
export default $http
